home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
3D Images
/
3D Images.iso
/
c
/
hippoplayer.doc
< prev
next >
Wrap
Text File
|
1994-12-11
|
25KB
|
698 lines
******************************************************************************
--- HippoPlayer ---
Programmed by K-P Koljonen
(Moonstone / Hippopotamus Design)
This program may be freely distributed
as long as all files are included unaltered!
Not for commercial use without
a permission from the author.
Copyright © 1994 K-P Koljonen
** FREEWARE **
******************************************************************************
HippoPlayer (HiP) is a multiformat moduleplayer for Amiga. It works
perfectly under Kickstart 1.2 and has about all the same features as the
Multiplayer, which is Kick2.0+ only. One main reason why I bothered myself
by making this program was that there were no good Kick1.3 compatible
players around, or I didn't know of one. The other reason was that my good
friend Jarno Paananen (Guru/Sahara Surfers) made a replayroutine for Scream
Tracker ]I[ modules.
If you want to play n+1 (a lot) different moduleformats, this program is
not for you.
The aim was to made a good moduleplayer that works on every Amiga
configuration and has all the features as the kickstart 2.0+ moduleplayers
have. To achieve speed, little size and memory usage, HiP is 100%
assembler.
HiP has a good support for Scream Tracker ]I[, FastTracker, TakeTracker,
and MultiTracker modules, meaning that you can listen them with a 68000
Amiga with listenable quality. All are played by the famous replayer by
Guru. HiP was the second program to use the PS3M routines after Guru's own
player.
Some features:
· Scream Tracker ]I[, FastTracker, TakeTracker, MultiTracker, 1 to 32ch.
· SID emulation by Håkan Sundell & Ron Birk.
· TFMX modules, normal and the seven channel-ones.
· Oktalyzer modules. Really good quality due to the turbocharged replayer.
· A handful of other 4 channel sample & synth music formats.
· Easy to use, nice 3D interface.
· Memory usage about 104kb. Too much!
· Keyboard control.
· Moduleprogram.
· Internal multitasking.
· Loads and decompresses XPK, FImp, PowerPacker, LhA, Zip and GZip files.
· Tested on following configurations:
A500/000, kick 1.2 (my little brother's)
A500/010, kick 1.3/3.1 (v1.00-v1.25 programming environment)
A1200/020, kick 3.0. (v1.27-...)
A2000/040, kick 2.0
A3000/030, kick 3.1
A4000/040, kick 3.1
******************************************************************************
* Requirements *
****************
Any Amiga with some memory and Kickstart 1.2 or higher. Reqtools.library
of any version will be needed for the requesters. There is kick1.3
reqtools.library included in the archive.
In order to... you need...
------------------------------------------------------------------
Load XPK files xpkmaster.library and some sublibs
Load PowerPacker files powerpacker.library
Load lha, zip and gzip files to look at 'Archivers'
Play SID files PlaySID.library
Play 4ch MED modules medplayer.library v2+
Play 5-8ch MED modules octaplayer.library v2+
All libraries must be copied into Libs: drawer.
reqtools.library and powerpacker.library by Nico François.
xpkmaster.library by Urban Dominik Müller (?).
PlaySID.library by Per Håkan Sundell & Ron Birk.
medplayer.library and octaplayer.library by Teijo Kinnunen.
Font
----
HiP will use pearl 8 font if it is already in memory (it won't be loaded
from disk), otherwise topaz 8 is used.
******************************************************************************
* Music formats *
*****************
Here's a list of the music formats HippoPlayer can play and what functions
they support. Also the authors are listed.
Stop/Continue = 1 - The music can be stopped and continued.
Multiple songs = 2 - Modules can have more than one song.
Volume = 3 - Volume can be controlled.
End detect = 4 - Songend can be detected.
Forward/backward = 5 - You can jump forwards and backwards in the song.
Replayer 12345 Author
--------------------------------------------------------------------
BP SoundMon v2.0 x-xxx Brian Postma
Delta Music v2.0 x-x-- Bent Nielsen
Fred xx--- Frederic Hahn & JC
Future Composer v1.0-v1.4 x-xx- SuperSero (of the Superions)
JamCracker x---- M. Gemmel
MED 4-8ch x---- Teijo Kinnunen
Music Assembler x-x-- Oscar Giesen & Marco Swagerman
Oktalyzer 8ch --x-- Armin Sander
ProTracker xxxxx K-P Koljonen
S3M/FTM/MOD/MTM x-xxx Jarno Paananen
SID xx--x Håkan Sundell & Ron Birk
SIDMon v1.0 x---- Reiner van Vliet
Sonic Arranger -x--- Carsten Schlote
TFMX xxxxx Chris Hülsbeck
TFMX 7ch xxxxx Chris Hülsbeck & Jochen Hippel
The Player v6.1a x-x-- Jarno Paananen
Normally all modules will be loaded in CHIP. Oktalyzer- and
S3M/FTM/MOD/MTM modules and TFMX songdata will be loaded in FAST RAM if
possible.
All compressed files will normally be loaded in CHIP. However, it's
possible to uncompress some kilobytes from the beginning of an XPKed file,
and check if it is a S3M/FTM/MOD/MTM-, or PT module, which is to be played
from FAST RAM (with fastplayer or PS3M), or TFMX music data (got that?).
Advantages of loading to FAST:
FAST RAM is much faster than CHIP, so mixing can be done faster.
CHIP RAM is saved if the module can or should be loaded in FAST.
LhA, Zip and GZip files can be checked and will be loaded in fast if
necessary.
--------------
- ProTracker -
--------------
· Fast ram replayer
Modules can be played from FAST RAM if the user wishes. This function is
useful only if you have more FAST RAM than CHIP RAM, because the modules
are always loaded as whole files. Four buffers, 65kbs of CHIP each, are
needed.
The fastramreplayer works on most modules, but when 9 command is used with
looped samples, it usually bugs. It also uses really very much chip for
buffers. It was a very quick hack anyway.. I will try to make it better
sometime. One good point is that it's fast, faster than the original PT
replayer.
· Multisong modules
There are some modules around with several songs separated by the B
command. HiP allows you to play these kind of modules correctly. Just use
the 'PS' and 'NS' gadgets (or the respective keys) to select different
songs.
--------
- TFMX -
--------
HiP can play both 4 and 7 channel TFMX modules, including the excellent
Turrican 2 and 3 intro tunes. A TFMX module consists of two files. They
must be named 'mdat.<name>' and 'smpl.<name>'. To play, select
'mdat.<name>'. HippoPlayer will then try to load the 'smpl.<name>' file.
The mixing rate of TFMX 7 channel replayer can be changed. The bigger
value, the better quality and bigger CPU load. I have noticed that
mixingrates 21kHz and 22kHz give somewhat strange results, so I use 20kHz.
-------------------
- S3M/FTM/MOD/MTM -
-------------------
(ScreamTracker ]I[/ProTracker/FastTracker/TakeTracker/MultiTracker)
Jarno Paananen (Guru/Sahara Surfers) has made replayers for these. The
mixing routine is amazingly fast. Even on Amiga 500 8 channel modules are
very listenable. The replayer gobbles quite a bit of memory for it's
buffers, so don't be surprised.
Mixing rates can be changed. Again, the bigger value, the better quality
and bigger CPU load. Using the system friendly mode on A500 will probably
more or less jam the machine, therefore you should use the killer mode for
the best quality.
PS3M allows mixing rates higher than 28kHz, which is normally the hardware
limit. In some AGA screenmodes (dblPAL, dblNTSC, atleast) mixingrates can
be upto 56kHz high. Ofcoz, this doesn't work under OCS/ECS Amigas.
These modules can and should be played from FAST RAM.
Playingmodes
------------
Mono Play all channels on both sides.
Stereo Normal.
Surround Play some of the right side on the left and vice versa.
Real Surround About the same, but uses more memory.
14-bit stereo BEST QUALITY, biggest CPU load, largest memory usage and
lowest volume level.
-------------------------------
- Delta Music v2.0, Oktalyzer -
-------------------------------
Delta Music and Oktalyzer replayers don't seem to work correctly when
called from CIA timerinterrupt, so vertical blanking interrupt is used.
This works fine, but sounds correct only on 50Hz screens. Higher
frequencies result higher playing speed.
-------
- SID -
-------
These are tunes ripped from C64 games & demos. Both normal file + icon and
one file formats are supported. The playing is done by PlaySID.library by
Håkan Sundell and Ron Birk. Great job dudes!
NOTE: Snapped from the docs of PlaySID v3.0:
"This utility is designed to work with true multitasking, under any system
version and any amiga model."
I must be deaf. I heard nothing when I tried to play under kick1.3.
******************************************************************************
* Gadgets *
***********
Keyboard shortcuts are bracketed.
New Clear the modulelist, select new modules and play the first one.
Play Load and/or play selected module. If nothing selected, pop up
the filerequester. [RETURN]
Cont Continue playing after stop.
Stop Stop playing.
Eject Stop playing and free current module. [TAB]
Prev Load and play previous module.
Next Load and play next module.
PS Play previous song. [ARROW LEFT]
NS Play next song. [ARROW RIGHT]
< Backward, jump to previous pattern. [,]
> Forward, jump to next pattern. [.]
Prefs Pop up the prefs window. You can also close it with this button.
Horizontal propgadget
Volume controller. [B][N]
The leftmost propgadget
Scroll modulelist.
Add Add modules to the end of the list, pop up the filerequester. [A]
Del Delete selected module from the list. [BACKSPACE]
Clr Clear the list. [D]
LoP Load moduleprogram.
SaP Save moduleprogram.
? Enter the infowindow. [HELP]
Samplenames Displays samplenames of MODs, S3Ms, FTMs and
MTMs.
SID info Information about SID modules.
Samplenames or SID info can also be invoked by
pressing left mousebutton on the leftmost third
of the name/type box or the 'I' key. (When there's
no info available the infowindow will be opened.)
Help Description of gadgets & keyboard shortcuts.
About About HiP...
Exit Hmm..
Windowclose-button [ESC]
Close all windows except requesters and exit.
** Other keys **
ARROW UP Select previous module.
ARROW DOWN Select next module.
SPACE Toggle play/don't play.
*, (next to RETURN) Randomize and play a module.
F8-F10 Show time, pos/len, song - clock - free memory.
CTRL Shrink/expand window.
******************************************************************************
* Prefs *
*********
Play (how to play modules)
----
List repeatedly Play modulelist over and over.
List once Play list once stop.
Module repeatedly Play one module over and over.
Module once Play one module once and stop.
Modules in random order
Play modules in random order.
When playing has started, same module will not be played twice
unless all modules have been played first.
'Play' affects the replayers where the end of the song can be detected
from.
Show (titlebar information)
----
Time, pos/len, song Show playing time, songposition/length and
songnumber/maxsong (#n/n) depending of what kind
of a module is being played.
Clock Show clock (24h).
Free memory Show free chip and fast in kilobytes.
Filter control
--------------
Filter controlled by module, filter forced off or on.
XPK identify
------------
When on, all XPKed files will be checked if they should be loaded in FAST.
Fade volume
-----------
This will cause those replayers that support volume to fade music in and
out.
Module directory
----------------
Here you can enter your module directory or select it by pressing the '?'.
ProTracker tempo
----------------
Enable or disable Protracker tempo command. Use on old modules that use
speeds higher than $1F.
PT replayer
-----------
Normal: Use normal Protracker replayer to play modules from CHIP RAM.
Fast: Play modules from FAST RAM.
PS3M: Use Guru's PS3M to play modules from CHIP or FAST.
This way you can use those neat modes, eg listen ProTracker
modules with real surround.
Scopes
------
Select one of the six scopes by clicking the gadget. The 'Scope on/off'
button will start it up. You can close a scope by closing it's window or
clicking the gadget again.
These are for ProTracker-modules only:
Quadrascope (& bars)
- This is just like the one in Protracker. Channel order: 1,2,3,4.
Hipposcope (& bars)
- Couldn't invent a better name.. Bass-sounds look nice with this one.
Channel order: 1,2,3,4.
Frequency analyzer (& bars)
- This one's more processor intensive. There is one for the left and the
right side. It displays frequencies, but doesn't use period values.
Bass-sounds are on the left and treblesounds on the right.
Bar channel order: 1,4,2,3.
Bars
- These will try to visualize the volume and the period of each channel.
The vertical position represents sampleperiod and the width samplevolume.
There are almost the same scopes for PS3M: Quadrascope (stereoscope,
actually), hipposcope and frequency analyzer. No bars.
Quadrascope for SID
- Draws envelope/waveform for each channel.
The scopes will need some kilobytes of memory for buffers. They are run
with priority of -30 so that they won't interfere with anything important.
TFMX mixingrate
---------------
Mixingrate for the 7 channel TFMX replayer.
PS3M settings
-------------
This replayer can play S3Ms, FTMs, MODs and MTMs.
Mode 1: System - Allow multitasking when playing.
Killer - Disable system and stop all DMA to get the best quality.
The blue flickering represents free CPU time.
Stop playing by pressing mousebuttons.
Mode 2: Playingmodes (see the PS3M doc).
Volumeboost:
Makes the sound clearer and louder (use when 8 or more channels)
Mrate (mixingrate):
Mixingrate in kHz.
Archivers
---------
HiP can decompress and play LhA, Zip and GZip files. You need to specify a
path, a command and options for each.
LhA, Zip and GZip archives will be extracted into a file (the name can be
anything) right after '>' (output redirection). The %s means the name of
the archive to be opened. The output file can be placed somewhere else
than in RAM: if you don't have enough memory.
You need: LhA, UnZip or GZip, according to what kind of packed files you have
(be sure they really are where you defined them to be).
'Run' command in C:.
These kind of files are identified by checking the name. LhA files have
suffix '.lzh' or '.lha', zip files '.zip', and gzip files '.z' or '.gz'.
NOTE 1: You can also other programs for decompressing, just adjust the
commandline!
NOTE 2: Gzip will most likely need very much stack for not crashing (a
UNIX program).
** Hint **
- Archived files may be packed with XPK, FImp or Powerpacker. For example,
you could use xpkDLTA to encipher a module and then LhA it.
Filebox
-------
Define the number of files showed simultaneously in the main window.
Minimum is 3 and maximum is 50 (will need a BIG screen). If the value is
too big for the current screen, it will be truncated.
Priority
--------
Select the mainprogram priority: -1, 0, +1.
Save, Use, Cancel
-----------------
I guess you can guess these. If you close the prefs window, it's same as
'Cancel'ling. The prefs-file will be saved in the S: directory.
*****************************************************************************
* Module selector *
*******************
Here you can see the modulelist. You can select a module by pressing the
left mousebutton on it or by pressing arrows up and down.
*********************
* Right mousebutton *
*********************
Pressing the right mousebutton or the control key will shrink the window so
that only the titlebar will be shown. Press again on the activated window
to expand.
If you somehow lose the window, just load the program again. If there
already was one HippoPlayer running, it's window will be popped to front
and expanded.
***********************
* Commandline options *
***********************
You can add modules or load a moduleprogram with commandline options.
Add modules to the list:
HiP <file2> <file2> ... <file16>
All the files will be added to the list and the first one will be played.
Load a moduleprogram:
HiP PRG <moduleprogram>
The program will be loaded and the first module will be played. If the
playmode is set as 'Modules in random order', then a random module will be
picked and played.
All filenames must be entered with paths!
**** NOTE THIS: You can also do these things while HiP is ALREADY running!
This allows you to use HiP as a commandline moduleplayer. Eg in Directory
Opus it would make a good play button.
***********
* History *
***********
v1.00 Works...
I couldn't check the bug I suspected because a friend of
mine wanted to upload the program everywhere. This bug causes
memory to get fragmented when loading XPK files.
v1.01 No major bugs left..
v1.10 · Removed some small bugs here and there.
· A description of the gadgets in the program.
· Support for multisong Protracker modules.
· Replayer which plays S3M/FTM/MOD/MTM modules, by Guru (jee).
· Load/save moduleprogram.
· Commandline options.
· Four scopes.
· Communication between most of HiP's processes. All windows except
reqtools requesters will be closed when the mainwindow is closed.
· Window positions will be saved in the prefs-file. Also the state
of the scope (on/off) will be saved.
· Doesn't interfere with serial transfers on slower Amigas anymore.
Exceptions are MED, TFMX, The Player.
They use their own way of timing (level 6 here I come).
· Works correctly on both PAL and NTSC.
· Behaves more intelligently with bigger fonts, eh...
· If playingmode is 'Random', Next/Prev will randomize a new
module instead of what they would normally do.
· Removed a bug in ProTracker's arpeggio.
· Newlook propgadgets on Kickstarts 2.0+.
· FutureComposer end-detect.
v1.11 · Now should work on 50/60/72Hz screens correctly.
· New icon (less eyesore?).
· Filter control in Prefs.
· Doesn't try to open windows over screen's borders.
· Info window, in which an option to show samplenames.
· TFMX channel autodetect.
· New PS3M -> Mixingrate: 5-56 kHz, volumeboost: 0-8
· Lotsa fixes'n stuff.
v1.12 · Fixes'n stuff part 2.
· New scope: Frequency analyzer
· More stuff in info window.
· New formats: The Holy Noise, MED 5-8 channels.
· Executable size (and memory usage) reduced.
Achieved this by packing nearly all the replayers.
· Removed a bug that caused PT vibratos to disappear. This bug
was created when I removed the arpeggio-bug. Hmm..
· More informative loading phase.
· Enables/disables gadgets according to current replayer.
· New prefs design.
· Modulebox can now contain 8 names.
· Titlebar information printed with SetWindowTitles().
· PT modules can be played from FAST RAM.
· End-detect: JamCracker, Oktalyzer, SoundMon v2.0.
v1.14 · Fixed a bug in 'del' (caused a crash sometimes).
· Almost full keyboard control.
· New formats: Delta Music v2.0, Sonic Arranger.
· Some enchancements in the filebox and in the slider.
· PS3M now frees ALL buffers needed for playing.
· LhA, Zip & GZip compatibility.
· Added a clock (titlebar info).
v1.15 · A couple of fixes here and there.
· Next/prev working fine again.
· Added a key for random play.
v1.16 · LhA/Zip/GZip filehandling much better.
· A bug in samplenamesroutine fixed.
· PS3M priority reduced from 2 to 0.
· PS3M system friendly mode end-detect (S3M, FTM, MOD, MTM).
· Show free memory in titlebar.
· SoundMon v2.0 bug fixed.
· Stringgadgets' fontbug corrected (hopefully).
· Volumeboost controlled with propgadget.
· Scope priority from -5 to -30.
· Priority selector in prefs (for mainprogram).
· Startup errormessages.
· Memory usage reduced 5kb compared to v1.15
v1.17 · Some fixes.
· Numerous bugs seemed to appear in v1.16. Hunt in progress..
Removed one in TFMX 7ch interface.
SoundMon v2.0 bug removed (again, was not fixed in v1.16).
v1.18 · Bughunt continues.
Several removed and among them one that possibly scrambled memory.
· Non-existent doublebuffering changed to fade volume.
v1.19 · No volume fading when tune ends while using randomplay.
· PS3M priority changed again, this time to +1.
· Windowcoloring.
· PT replayer still had bugs left: vibrato & tremolo were too
strong! Fixed.
· No more H.P.Lovecraft.
v1.20 · LhA/Zip/GZip enchanced and some bugs removed.
· New backround color looked wrong on 8+ color screens. Fixd.
v1.23 · SID support! Now you can listen all those cool C64 tunes!
· Samplenames => Moduleinfo. Now also info about SID modules.
· Open moduleinfo window also by pressing left mousebutton on the
name/type box or pressing 'I'.
v1.25 · Major changes in LhA/Zip/GZip interface. Should work OK, finally.
The version in v1.15 onwards really acted strange!
· Stereoscope for PS3M, might not work very well though.
v1.28 · The timer will wrap properly now.
· All replayers excluding PT and PS3M didn't work on 68040 because
of the copyback-cache. Should work OK now.
· Timer and pos/len are now shown at the same time.
· Moduleinfo reorganized. All PT samplenames in same window.
v1.30 · Fixed a very silly bug (changed the volume depending on the size
of the module being played!).
· New scope: SID.
· Improved Shell interface. Allows HiP to be more a commandline
moduleplayer.
· Time, pos/len and song number shown at the same time.
· The timer uses DateStamp().
· Requesters use the same font as the mainprogram.
· Some gfx bugs fixed.
· NEW VERSION OF THE PS3M! Mixingroutines for 68000 and 68020++.
Faster and more beautiful! Stop/cont/fastforward/rewind etc.
· Two more scopes for PS3M.
· Removed The Holy Noise.
· The Player version increased to v6.1A.
· When a module jumps backwards it is considered ended. Works with
PS3M and ProTracker.
v1.31 · Several not so serious bugs fixed.
· After playing TFMX 7c tunes, programs using lev4 interrupt crashed
(like PS3M). Fixed.
· Some Prefs-window reorganization.
· Hippoicon by Tommi Lindström (Hawk/Hippopotamus Design).
v1.32 · Pressing "Play" on the module currently being played caused
HiP to load next module (in list-playmodes).
· Moduleprogram directory saved in the prefsfile.
· Samplenameviewer works OK, no more garbage.
· Some PS3M bugs removed (stop-eject=no guru).
· ProTracker replayer can cope with a bit mutated modules too.
v1.33 · Unofficial release...
v1.34 · Numerous fixes here and there.
· BPSoundMon enchancements: position/length, ffwd and rew, volume.
· More info in the infowindow.
· Number of subsongs checked: TFMX, TFMX 7c, Fred.
· When there's no "moduleinfo" available and the left mousebutton is
pressed on the left third of the textbox, infowindow will be opened.
· TFMX & TFMX 7c enchancements: position/length, ffwd and rew,
songend.
· Sometimes PS3M didn't start to play in killermode (my fault). Fixed.
· New design in the mainwindow.
· Amount of files showed in the mainwindow now selectable.
· Amount of songs (if available) shown after current songnumber.
· Some samplenameviewer bugs removed.
· Again a different icon. Could someone draw me a nice hippoicon?
· IMPORTANT: Versions 1.30 to 1.33 didn't work on A500 or A600,
in other words on 68000. This version should work OK.
**********
* Thanks *
**********
Jarno Paananen (Guru/Sahara Surfers)
- Hi friend! Thanks very much for the PS3M!
Nico François
- For the great reqtools.library!
Per Håkan Sundell & Ron Birk
- For making almost perfect SID emulation!
Kari out of Bitmans, Arto Ikola, Aki Laukkanen, Jani Päijänen.
*********
* Help! *
*********
How can I build an ARexx-port into HippoPlayer?
*********
* About *
*********
The program was made by using Asm-Ones v1.06/1.09/1.25. Pure assembler
100%+++. Sourcecode length without any playroutines about 205kb.
Where can I get Chris Hülsbeck's CDs??
Bug reports, comments & suggestions, moduleswapping and C-64 wares are
welcome!
Kari-Pekka Koljonen
Torikatu 31
40900 Säynätsalo
Finland
E-mail: kpkoljon@freenet.hut.fi
Finns phone: 941-3742699.